home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / applications / wp / fwmacros1.lha / UserMacros / portugu黌 / AlinharAbaixo.fw next >
Encoding:
Text File  |  1994-10-03  |  1.8 KB  |  75 lines

  1. /*
  2. $AUTHOR:  Fernando Nunes e Manuel Lemos (UpperDesign@zeus.ci.ua.pt)
  3. $VER: AlinharAcima 1.01 (1.10.94)
  4. Descrição:  Macro  em  ARexx  para  o FinalWriter que faz o alinhamento de
  5.             vários objectos selecionados pelo objecto mais acima.
  6. */
  7.  
  8. options results
  9.  
  10. /* obter uma lista dos objectos seleccionados */
  11. selecionados = 0
  12. FirstObject SELECTED
  13. do until result =0
  14.   selecionados = selecionados + 1
  15.   objectid.selecionados = result
  16.   NextObject objectid.selecionados SELECTED
  17. end
  18.  
  19. if selecionados > 1 then
  20. do
  21.  
  22.   /* determinar a coordenada do objecto mais acima */
  23.   do objecto = 1 to selecionados
  24.     GetObjectCoords objectid.objecto
  25.     coords = RESULT
  26.     PARSE VAR coords pagina esquerda cima direita baixo
  27.     GetObjectType objectid.objecto
  28.     tipo = result
  29.  
  30.     /* linhas */
  31.     if tipo = OBJECTO_LINHA then
  32.       do
  33.         if cima > baixo then
  34.           baixo = cima
  35.       end
  36.     else
  37.       baixo = cima + baixo
  38.     if objecto = 1 | baixo > mais_abaixo then
  39.       mais_abaixo = baixo
  40.   end
  41.  
  42.   /* mover os objectos para cima */
  43.   do objecto = 1 to selecionados
  44.     GetObjectCoords objectid.objecto
  45.     coords = RESULT
  46.     PARSE VAR coords pagina esquerda cima direita baixo
  47.     GetObjectType objectid.objecto
  48.     tipo = result
  49.  
  50.     /* linhas */
  51.     if tipo = OBJECTO_LINHA then
  52.       do
  53.         if cima < baixo then
  54.           do
  55.             cima = mais_abaixo - baixo + cima
  56.             baixo = mais_abaixo
  57.           end
  58.         else
  59.           do
  60.             baixo = mais_abaixo - cima + baixo
  61.             cima = mais_abaixo
  62.           end
  63.       end
  64.     else
  65.       cima = mais_abaixo - baixo
  66.     SetObjectCoords objectid.objecto pagina esquerda cima direita baixo
  67.   end
  68.  
  69.   /* voltar a reselecionar todos os objectos selecionados antes */
  70.   do objecto = 1 to selecionados
  71.     SelectObject objectid.objecto MULTIPLE
  72.   end
  73.   redraw
  74. end
  75.